Signed-off by: Andy Peace <andrew.peace@xensource.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
struct buffer *buffer = &dom->buffer;
struct ring_head *ring = (struct ring_head *)dom->page;
size_t size;
+ u32 oldcons;
while ((size = ring->prod - ring->cons) != 0) {
if ((buffer->capacity - buffer->size) < size) {
}
}
- while (ring->cons < ring->prod) {
+ oldcons = ring->cons;
+ while (ring->cons < (oldcons + size)) {
buffer->data[buffer->size] =
ring->buf[XENCONS_IDX(ring->cons)];
buffer->size++;